class Solution66 {
    public int[] plusOne(int[] digits) {
        //  首先确认不能用整合成的数字(int 溢出)
        //  其次确认注意点是9和进位

        //  倒叙遍历
        int carry = 1 ; 
        int i = digits.length-1 ;
        do{
            if( (digits[i] + carry) != 10 ){
                digits[i] = digits[i] + carry;
                carry = 0; 
                break;     
            }else{
                digits[i] = 0;
                carry = 1;            
            }
            i--;
            //  循环完成跳出条件
            if(i<0){
                break;
            }
        }while(true);

        // 数组上溢一位，有且只有一种情况
        if(digits[0] == 0){
            // 小技巧:int默认值0
            int[] spdigits = new int[digits.length +1];
            spdigits[0] = 1;
            return spdigits;
        }else{
            return digits;
        }
        
        
        
     }
}